package com.ccsoft.thread.service;

/**
 * 2021年12月13日 12:11:38 chanchaw
 * 创建线程的多种方法：
 * 1. 创建 Thread 对象
 * 2. 实现接口 Runnable 的类
 * 3. lambda 表达式方式
 */
public class No8CreateThreadMethods {

    public static void main(String[] args) {
//        implRunnable();
        lambdaThread();
    }

    // 使用 lambda 表达式创建 Runnable 对象
    private static void lambdaThread(){
        Runnable r = ()-> System.out.println("lambda create thread");
        Thread t = new Thread(r,"t1");
        t.start();
    }

    // 通过创建 Runnable 对象创建子线程
    private static void implRunnable(){
        Runnable r = new Runnable() {
            @Override
            public void run() {
                System.out.println("impl runnable");
            }
        };
        Thread t = new Thread(r,"t1");
        t.start();
    }

    // 通过创建 Thread 对象创建子线程
    private void createThreadObject(){
        Thread t = new Thread(){
            @Override
            public void run() {
                System.out.println("子线程运行了！");
            }
        };

        t.setName("t1");
        t.start();
        System.out.println("programe over!");
    }
}
